C_普通位运算
源码:
# include <stdio.h>
int main()
{
/* 定义了一个无符号字符型变量,此变量只能用来存储无符号数 */
unsigned char result;
int a, b, c, d;
a = 2;
b = 4;
c = 6;
d = 8;
/* 对变量进行“按位与”操作 */
result = a & c;
printf("result = %d\n", result);
/* 对变量进行“按位或”操作 */
result = b | d;
printf("result = %d\n", result);
/* 对变量进行“按位异或”操作 */
result = a ^ d;
printf("result = %d\n", result);
/* 对变量进行“取反”操作 */
result = ~a;
printf("result = %d\n", result);
return 0;
}
相关文档:
例:#define NELE(a) (sizeof(a) / sizeof(a[0]))
int main() {
char str[] = {'E', 'M', 'C'};
for (int d=-1; d<=(NELE(str)-2);d++)
printf("%c",str[d+1]);
return 0;
}
判断printf()输出的是什么,结果可能出乎意料,什么也没有输出,原因呢?原因 ......
昨天一个同学和我谈起他在测试C程序时时发现使用-1为下标来访问数组,gcc并没有报错,而且能够运行成功,这个以前我还没试过,处于好奇,今天下午抽了点时间看了一下。
下面是我使用的测试代码,运行环境是DEV-C++4.9.9.2,编译器使用的是gcc。
&nb ......
提出问题:
回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。
分析原因:
普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身的指 ......
C/C++中的Split函数是strtok()其函数原型如下:
char * strtok (char * str, const char * delimiters);
函数说明
strtok()用来将字符串分割成一个个片段。参数str指向欲分割的字符串,参数delimiters则为分割字符串,当strtok()在参数
str的字符串中发现到参数delimiters的分割字符时则会将该字符改为'\0'字符 ......
源码:
# include <stdio.h>
int main()
{
int i, j, k;
int m, n, p;
i = 8;
j = 10;
k = 12;
/* 自增在操作数之前 */
  ......