c语言第一个程序HelloWorld
#include<stdio.h>//导入头文件,都是方法的声明,.h .hpp 里面都是方法的声明:.cpp(c++) .c(c)都是方法的实现
void main(){
printf("Hello world");//打印输出
getchar();//暂停一下
}
基本数据类型
//基本数据类型
void main(){
int i = 100;
double d = 200;
float f = 200;
long l = 100;
short s = 100;
char c = 'D';
//字符串char *
//输出打印,要用占用符
printf("i的值是:%d\n" , i);
printf("d的值是:%lf\n", d);
printf("d的值是:%f\n", f);
printf("d的值是:%ld\n", l);
printf("d的值是:%d\n", s);
printf("d的值是:%c\n", c);
getchar();
}
变量地址和指针变量
//变量的地址,任何的数据或者变量都会有地址
void main(){
int i = 100;
//&i &代表取变量的地址
//通过debug的调试,我们可以根据地址查询该地址的数据, int 4字节, sizeof()获取数据类型所占的字节数
printf("i的地址是:%p", &i);
getchar();
}
debug下根据地址查询该地址的数据,根据下图选择内存

输入debug中获得的地址然后复制,然后选择4字节,带符号显示

我使用的软件是visual studio2013
sizeof()获取数据类型所占的字节数
// sizeof()获取数据类型所占的字节数
void main(){
printf("int 数据类型所占的字节数:%d\n", sizeof(int));//4
printf("double 数据类型所占的字节数:%d\n", sizeof(double));//8
printf("char 数据类型所占的字节数:%d\n", sizeof(char));//1
getchar();
}
指针变量和获取地址的值
//指针变量和获取地址的值
void main(){
int i = 100;
double d = 200;
printf("i的值是:%d\n", i);
printf("i的值是:%d\n", *(&i));//根据地址返回值
//指针(地址)变量,指针存放(指向)的就是变量的地址
//int *代表的是int类型的指针(地址)
int *p = &i;
printf("i的值是:%d\n", *p);
double* pl = &d;
getchar();
}
通过指针修改值
//通过指针修改值
void main(){
int i = 100;
int *p = &i;
i = 200;
printf("i的值:%d\n", i);
//通过指针修改值
*p = 300;
printf("i的值:%d", i);
getchar();
}
通过方法修改值
//通过方法修改值
void change(int i){//这个i是另一个
printf("change中的i的地址:%p\n", &i);
i = 200;
}
//所以上面方法不行,可以使用指针修改值
void change(int *p){
printf("change中的i的地址:%p\n", p);
*p = 200;
}
void main(){
int i = 500;
printf("change中的i的地址:%p\n", &i);
printf("i的值:%d\n", i);
change(&i);
printf("修改后i的值", i);
getchar();
}
题目:写个方法对两个值进行交换
void change(int *a, int *b){
int temp = *a;
*a =* b;
*b = temp;
}
void main(){
int a = 100;
int b = 200;
change(&a, &b);
printf("a的值是:%d\n", a);
printf("b的值是:%d\n", b);
getchar();
}
面试题:对a,b值进行交换,但是不开辟额外的内存(不能用中间变量)
void main(){
int a = 100;
int b = 200;
a = a + b;
b = a - b;
a = a - b;
printf("交换后ab的值分别是:%d,%d", a, b);
getchar();
}
网友评论