D,数组名不能为左值
B,是内容加4,不是地址加4。
C
[C语言](详细)结构体的内存对齐(规则、存在原因、默认对齐数的修改等+实例分析)_结构体内存对齐规则-优快云博客
C,截断法则,++a为真,就不会执行++b,
C
A,值传递
B
*(ptr++)+=123;可以分解为*(ptr)=*(ptr)+123,ptr=ptr+1,原因就是有后置++,先取*ptr再加123,然后再指针加1。这是arr[]={129,7,8,9,10},指针指向7。printf()函数规定从右向左执行,先执行*(++ptr)),指针加1指向8所在的地址然后取内容就是8。然后再执行*ptr,因为指针已经指向8这个地址了,所以*ptr也是8.
A
C
int i=1; main() {int i=i;}-优快云博客
2*(3+((3+1)*5+1))=48 B
char: -2^7-2^7-1 int: -2^31-2^31-1
每日一题(30)—— 局部变量能否和全局变量重名?_全局变量不可以和函数内的局部变量同名。-优快云博客
全局变量和局部变量是否可以重名(笔试题)_全局变量和局部变量重名-优快云博客
答:可以重名,编译会通过,但编译器打印出来的是局部变量的值,要想打印全局变量的值,需要在全局变量的前面加::
include引用时“”和<>的区别:
<>去系统目录查找头文件
“”先从当前目录下查找,如果没有再去系统目录查找头文件。
C++ const char *a、char * const a、char const *a、const char * const a 解析_const char * a-优快云博客
第一个const修饰了指针a,表示指针a(a存放的地址)不可以被修改,而a指向的数据可以被修改
第二个const修饰了*a,表示指针a可以被修改,而a指向的数据不可以被修改
第三个和第二个一样
#define MIN(A,B) A>B? B:A
48