c语言基础编程

#include<stdio.h>       //头文件,就是调用人家写好的一些函数(就是一些功能模块的集合)

int main()             //主函数,表示一个程序的开始。一个程序中,有且仅有一个main函数

{

int a;             //定义一个整形变量,这个整形变量里面存储的是整数。

a = 10;            // 给一个整形变量赋值。

float b;           //定义一个单精度浮点型变量b

b = 19.00005;             //给变量b赋值

double c;        //定义一个双精度浮点型变量c,用%lf输出

c = 22;

char d;          //定义一个字符型变量d,用%c输出

d = 'a';        //''赋值

printf("a = %d b = %f c = %lf d = %c\n", a ,b, c, d);    //a = 10 b = 19.000050 c = 22.0000000  //d = a

printf("int所占的字符数 %d\n", sizeof(int));              //显示int型所占的字符数

return 0;         //表示正常退出

}


1.如何定义一个变量  

变量名:它是只能由数字/字母/下划线组成的。开头只能是字母或者下划线;

比如: 2sdglkghlk;这种就是不合法的变量名;正常的变量名表示方式,StudntAge ,student_age,

student, student_ID ,student01 ,student_dent1;


例子: 

1)大小写转换

int main()

{

char c1, c2;

c1 = 'A';

c2 = 'A'+32;                       

printf("%c, %c \n",c1, c2);     //大小写转换

}



2)

 int main()

{

int a = 200, b = 010;      //以0开头的数是八进制数,如b

printf("a= %d b= %d\n", a, b);    //a= 200 b= 8

 

return 0;

}


编译的四个步骤:

1. 预处理  简单的替换,将一些宏定义库函数替换到代码中去

   gcc -E hello.c -o hello.if

2. 编译   将预处理之后的代码进行词义分析,语法检查。(报错地方出现在这个阶段)并且生成汇编代码

   gcc -S hello.i -o hello.sbrk

3. 汇编  将汇编代码转换成二进制代码

   gcc -c hello.s -o hell.o

4. 链接  将生成的二进制文件链接成计算机可执行的文件。

   gcc hello.o -o hello



存储布局:

 

一般来说,我们编写一段代码,每一个变量都有自己所在的存储位置。

都有哪些位置?

    一般存储局部变量     (它的空间比较小,它是由系统自动分配内存和释放内存的)

 int a;  系统分配了四个字节的空间给了a;一般的局部变量都存储在栈中。

 定义在一个函数(就是一个功能模块)中的局部变量,在函数结束时就不能再次使用了。因为它已经被系统回收了。

 定义的全局变量存放在全局数据段,(总之就是不在栈中),它的作用范围是整个程序。

   

       程序员手动分配的内存的变量,一般这些变量很好区别,调用mall/calloc之类的手动分配内存的函数

未初始化数据段       又称未初始化全局变量区

初始化数据段          已经初始化的全局变量

代码段(正文段)      其他一些条件语句/代码存放在代码段

int a = 0;  //全局初始化区。data段

static int b = 20;  //全局初始化区。  data 段    

static 静态的意思,作用:变量b, 它被限定在本文件中,不能被其他文件使用。一般来说,它存储在初始化数据段。

char *p1;   //全局未初始化区。  bss段

const int A = 10;  // .rodata 段

// const 只读的意思,意思是A的值不能变,或者说A是一个常量

char *p = "wamgliang"    //这里是定义一个字符串常量,字符串常量不能改变

p1 = (char*) malloc(10)   //分配得来的10个字节的区域就在堆区

strcpy(p1,"12444"); // 123444在常量区,编译器可能会将它与p3所指向的“123444”优化成了一个地方


char ch;              //从标准输入中获得一个字符给ch;等效于scanf("%c", ch);

ch = getchar();

putchar(ch);       //putchar(ch),输出单个字符到标准输出中

printf("\n");

return 0;

}



int main(void)

{

char ch;

ch = 'A';

putchar(ch);   //putchar(),输出单个字符,括号中能填写变量名/转义字符/16进制数/8进制数/10进制数/

putchar('\n');   //需要注意的是:你的字符。或者转义字符必须是单个/必须是用单引号括起来,你的数字(不管是什么进制的数)都不要加单引号。

putchar(0x63);

putchar('\n');

putchar(0143)

putchar('\n');

putchar(99);

putchar('\n');

 

return 0;

}



int main()

{

char name[20];   //这个东西叫做字符数组,它拥有20个字节的空间;name表示这20个空间的首地址。

scanf("%s", name);

printf("%s\n", name);

//gets(name);     有警告

//puts(name);

return 0;

}



 从键盘输入大写字母,输出对应的小写字母

int main()

{

char ch,ch1;

printf("please input char");

scanf ("%c",&ch);

ch1 = ch +32;

printf("ch1= %c\n", ch1);

return 0;

}

 


int main()

{

int Age, gz;

printf("please input  Age gz\n");

scanf(" %d,%d", &Age, &gz);    

printf("Age = %d,\n gz = %d \n",  Age, gz);     

char sex;

int age;

float salary;

printf("please input your sex:");

scanf("%c", &sex);

printf("please input your age:");

scanf ("%d", &age);

printf("pleas input your salary");

scanf("%f", &salary);

printf("your sex : %c\n", sex);

printf("your age : %d\n", age);

printf("your salary: %f\n", salary);

return 0;

}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值