学习点滴笔记

这些天又重新看了看C语言的书,做了点笔记。但是突然之间不知道如何组织这些笔记。最后想了想算了,就这样吧,看书看得杂,欠缺的地方又多了,自然该做笔记的地方就多了,笔记当然是前村不着后店了。

c 语言当中数据的输入输出:
   scanf printf函数式针对标准输入输出设备、getchar putchar是针对单个字符进行输入输出的函数。
  
  
   C 语言但这又四种存储属性: 自动变量,外部变量,静态变量,寄存器变量、这些决定了变量的保留时间和变量的作用范围、
   时间角度: 可将变量分为,静态存储和动态存储。
   空间角度: 可将变量分为,全局变量和局部变量。局部变量在编译是不分配内存单元,而在运行时调用函数根据需要分配内存单元。
   局部变量不声明为static时自动匹配为自动变量。

static全局变量与普通全局变量的区别;
static全局变量与普通全局变量存储方式都是静态存储方式。不同点是非静态全局变量作用整个源程序,当一个源程序由多个源文件组成时,非静态变量子啊各个源文件当中都有效。而static静态全局变量只在定义的该源文件当中有效(即是限制了作用域)。
  
   C语言数据输入输出;
   scanf printf,函数是针对标准输入输出设备。
   getchar putchar 函数是针单个字符输入输出的函数。
   puts : 字符串输出函数。
   gets : 字符串输入函数。 gets是也回车作为输入结束的标志,而不是空格。


     指针的使用: 当定义了指针之后记得一定要初始化,赋初值、


      下面这个程序要避免: strlen() 返回值是无符号整型
/////  int main()
/////{
///// char a[] = "abc";
///// char b[] = "abcde";
/////
///// if(strlen(a) - strlen(b) >= 0)
///// {
/////  printf("a的长度大于b\n");
/////  printf("%d\n",strlen(a) - strlen(b));
///// else
///// {
/////  printf("a的长度小于b\n");
///// }
/////编译的时候就会出现如下情况:警告:隐式声明与内建函数‘strlen’不兼容命令未找到。
////////////////////////////////////////////////////////////////////////////////////////////////////
int a,b,c,d;
 a=10;             
 b=a++;      >      b=10,         a=11
 c=++a;         >    c=12,         a=12
 d=10*a++;      >  d=10*12,   a=13
最后d的值是?   (120)
///////////////////////////////////////////////////////////////////
写一个语句实现X是否为2的若干次幂的语句。
X 是2的若干次幂,则有X & (X-1)为假。
  scanf(“%d”,i);
printf("%d",( ( i ) & (i-1) ? false  : true);
////////////////////////////////////////////////////////////////////////////////
交换两个变量a,b.不使用第三个变量,如a=3,b=5.交换后a=5,b=3/
方法一(注意越界): a=a+b;    a=3+5=8
              b=a-b;     b=8-5=3
              a=a-b;      a=8-3=5
方法二异或(指定类型如,int,char..)
                a=a^b;
      b=a^b;
 a=a^b;
第二种感觉很棒啊!。
//////////////////////////////////////////////////////////////////////////////////
#include<stdio.h>
int main()
{
 int a[5]={1,2,3,4,5};
 int *ptr=(int *)(&a+1);
 printf("%d,%d",*(a+1),*(ptr-1));
 return 0;
}//最后打印的是2    ,     5   是不是大大出乎你的意料。
这里&a+1并不是首地址+1的情况,系统会认为加一个a数组的偏移,即是一个数组的偏移量。所以&a+1实际上已经指到了a[5]处。
//////////////////////////////////////////////////////////////////////////////////
将字符串转换为整数
int func(char * s)
{
 int ret=0;
 int n=1;
 if(*s=='-')//这里 一直不知道是啥意思啊
 {
  n=-1;
   s++;
 }
 while(*s!='\0')
 {
  ret=ret*10+(*s-'0');
  s++;
  printf("%d\n",ret);
 }
 return (n*ret);
/////////////////////////////////////////////////////////////////////////////////
assert(int expression)   是一个调式程序,括号里面的值为false(0),程序报错。
C语言当中没有异或操作:
(a) xor (b)等同于 (a || b)&& !(a&&b);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值