#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//操作符学习
void test1(int arr[]) {
printf("%d\n", sizeof(arr));
}
void test2(char ch[]) {
printf("%d\n", sizeof(ch));
}
int main() {
//在算术操作符中,需要注意的是除法操作符/ 余数操作符
//单目操作符 sizeof
/*short s = 0;
int a = 10;
printf("%d\n", sizeof(s = a + 5));
printf("%d\n", sizeof(s));*/
//int arr[10] = { 0 };
//char ch[10] = { 0 };
//printf("%d\n", sizeof(arr));
//printf("%d\n", sizeof(ch));
//test1(arr);
//test2(ch);
//int c = 1;
//int b = 0;
//b = c + --c;//实际上存在歧义
//printf("%d\n", b);
//int i = 10;
//i = i-- - --i * (i = -3) * i++ + ++i;
//printf("%d\n", i);
指针的检验 现在编译器版本已经不能这样运行了
//int a = 0x11223344;
//int* pa = &a;
char* pc = &a;
//printf("%p\n", pa);
//printf("%p\n", pc);
//野指针
//围巾行初始化
//非法越界
//int arr[10] = { 0 };
//int* pa = arr;//创建指针指向数组首元素
//int i = 0;
//for (i = 0; i < 12; i++) {
// pa++; //当运行到第11次时,产生了指针越界
//}
//指向内存被释放
//指针加整数运算
/*int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
int j = 0;
int sz = sizeof(arr1) / sizeof(arr1[0]);
int* p = arr1;
for (j = 0; j < sz; j++) {
printf("%d\n", *p);
p = p + 1;
}*/
int arr2[10] = { 0 };
printf("%d\n", arr2);//无效代码
printf("%p\n", arr2);
printf("%p\n", &arr2[0]);
return 0;
}