C/C++基础

4 篇文章 0 订阅
1 篇文章 0 订阅
符号%d%ld%c%f%u%hd%lf%x%o%s
类型intlong intcharfloat无符号

短整型

double16进制输出8进制输出字符串
  • 输入

main(){

int year,month,day;
scanf("%d%d%d",&year,&month,&day);
printf("year=%d\nmonth=%d\nday=%d\n",year,month,day);
}
  • 数据类型

计算数据类型及变量占用的字节数 sizeof(char)

C无,用int表示
Javaboolean
  • 指针

//地址:  &变量, &取地址符号
//指针:一个变量地址,是一个常量
int i=10;
printf(&i);

//通过变量地址取值:*地址
*(&i)=i

//指针变量,也占用内存
int p=&i //是错误的,不能随便定义一个变量定义变量地址
int *p;  p=&i;   //定义:要存放地址数据类型、*符号、指针变量

//指针变量更改变量值
int *p=&i;
*p=1000  //i=1000;
//例如

main(){
    int a=1;
    int b=100;
    swap1(a,b);
    swap(&a,&b);
}
void swap1(int i,int j){
    int temp=i;
    i=j;
    j=temp;
    //只是i、j、temp在操作,与a、b无关
}
void swap1(int *p,int *q){
    int t=*p;
    *p=*q;
    *q=t;
    //直接交换地址
}

//备注: sleep(1)单位是秒
  • 字符串,字符串数组

//C语言没有string类型,需要用字符数组和字符串表示

// c语言字符串以一个空字符为结束(\0 值是0)  。所以ch2是字符串,ch1是字符数组
char ch1[]={'1','q','a'};//ch1占用字节数:3
char ch2[]="1qa";        //ch2占用字节数:4
char ch3[]={'1','q','a','\0'}; //可以作为字符串,等于ch2。
char ch4[]={'1','q','a','\0','1','e'};//strlen 计算长度以\0为终结,并忽略\0。
    char ch1[]={'a','b','c','\0','q','w'};//字符数组
    char ch[]="abc";//字符串
    char *p;
    p=&ch[0];
    printf("%c\n",*p);//a
    printf("%s\n",p);//abc,字符串第一个元素的地址就是字符串的地址
    //若p=&ch[1]; 则打印b和bc

练习

//1.用字符指针改变字符串字符    
void main()
{
     char ch[]="hello word";//字符串
     char *p=&ch[0];
    //移到下一个字节 p++;
    while(*p!='\0'){
    	if(*p==' '){
    		*p='!';
    		break;
    	}
    	printf("%c\n",*p);
    	p++;
    }
    printf("%s",ch);  
}

//2.将一个字符串反序后保存原有控件
#include "stdio.h"
#include <string.h>
void main()
{
     char ch[100]="hello word";
     int size=strlen(ch);
     
     //定义指针变量和交换字符的临时变量
     char *head,*tail,temp;
     //head存放指向字符串的第一个元素tail指向最后一个元素
     head = &ch[0];
     tail= &ch[0] + size - 1;
     while(head<tail){
     	temp=*head;
     	*head=*tail;
     	*tail=temp;  
     	head++;
     	tail--;   	
     }  
     printf("%s",ch);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值