![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言编程问题
不会说话的妖
这个作者很懒,什么都没留下…
展开
-
C语言中运算符的优先级
C语言中运算符的优先级表原创 2023-05-04 16:19:50 · 73 阅读 · 0 评论 -
ASCII码表
原创 2021-06-07 17:25:01 · 873 阅读 · 0 评论 -
C语言中“#、##、##__VA_ARGS__”的用法
#:把参数名转为字符串#include <stdio.h>#define prin(x) printf("%s=%d",#x,x)int main(){ int i = 9; prin(i); return 0;}运行结果:##:用来连接两个子串#include <stdio.h>#define prin(x) print##x()void printA(){ printf("这是printA()函数");}void printB(原创 2021-05-12 17:47:15 · 789 阅读 · 0 评论 -
C语言位操作
C 语言中提供了 &(与)、|(或)、^(异或)、~(取反)、>>(右移)、<<(左移)6 种位操作符。pqp&qp|qp^q00000010111001111110假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:A = 0011 1100B = 0000 1101下表显示了 C 语言支持的位运算符。运算符实例&(与)原创 2021-04-24 15:05:57 · 124 阅读 · 0 评论 -
翻转一个数
十进制数的翻转将 123 翻转后为 321 ;将 -123 翻转后为 -321 ;#include <stdio.h>int main(){ int n = 123; int m = 0; while(n != 0) { m = m * 10 + n % 10; //取出 n 的个位数,并加上 m * 10 n = n / 10; //去除 n 的个位数 } printf("%d",n); return 0;}二进制的翻转输入:00000010原创 2021-03-29 15:16:38 · 130 阅读 · 0 评论 -
寄存器置 0 或 1 的问题
设 GPIO 为一个 8 位寄存器,其值为:10010100①现要将它的第 3 位(从右开始,第 0 位起始),置为 1 ,并保持其他位不变。GPIO |= (1<<3); //置 GPIO_3 为 1原理是 1 左移3位,再或上 GPIO。②现要将它的第 2 位,置为 0,并保持其他位不变。GPIO &= ~(1<<2); //置 GPIO_2 为 0原理是先将 1 左移 2 位,再进行取反,最后再与上 GPIO。.原创 2021-03-26 11:21:15 · 3028 阅读 · 0 评论 -
C语言char数组的初始化
字符数组的定义与初始化:char a[ 5 ] = { ’ a ', ’ b ', ’ c ', ’ d ’ };注意:大小为 n 的字符数组,最多能赋值 n - 1 个字符。若超过 n - 1 个,则会直接报错;若是少于 n - 1 个,则其余的自动赋为空字符 ‘ \0 ’ 。若在定义数组时赋值为空,即:char a[ 5 ] = { ’ \0 ’ }; 其实这样赋值只是把第 1 个元素赋值为 ‘ \0 ’,后面的都默认用 ‘ \0 ’ 填充。而若在定义数组时,char a[ 5 ] = {原创 2021-03-16 16:51:55 · 20752 阅读 · 1 评论 -
C语言中传递二维数组
第一种方法:#include <stdio.h>void pri(int n,int a[ ][3]){ for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) printf("a[%d][%d] = %d\n", i, j, a[i][j]);}int main(){ int a[3][3] = {1,2,3, 4,5,6, 7,8,9}; pri(3,a); ret原创 2021-03-15 10:02:42 · 614 阅读 · 0 评论 -
零矩阵
编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。例:输入:1 1 11 0 11 1 1输出:1 0 10 0 01 0 1我的思路是先将数组中的所有 0 找出,并且通过使用矩阵本身来存储需要清零的行与列的数据。#include<stdio.h>void setZeroes(int** matrix, int line, int column){ int i,j,x; for(i=0;i<line;i++) {原创 2021-03-14 15:41:54 · 1580 阅读 · 0 评论 -
关于M*M矩阵旋转的问题
下面是一个3*3的矩阵,经过90度旋转,得到:1 2 3 7 4 14 5 6 ——> 8 5 27 8 9 9 6 3第 1 种方法:使用辅助数组我们只看第1行的旋转:1 2 3 。。1。。。 ——> 。。2。。。 。。3可以看出第 1 行的元素旋转后,出现在倒数第 1 列的位置。并且第 1 行的第 x 个元素旋转后,出现在倒数第 1 列的第 x 个位置。再来看第 2 行的元素,旋转后,出现在倒数第 2 列的位置上。。。。 。4 。4 5原创 2021-03-14 15:19:13 · 150 阅读 · 0 评论 -
C语言中函数返回数组的问题
今天遇到一个自定义函数返回数组的情况,下面用一个很简单的事例演示:#include<stdio.h>#include<string.h>char* a(char* x){ char y[strlen(x)]; strncpy(y,x,strlen(x)-1); //将x数组的前strlen(}原创 2021-03-13 16:05:46 · 337 阅读 · 0 评论 -
C语言中int类型与char类型相互转换的问题
char类型转化成int类型char a = '9';int b;b = a - '0'; //b = 9int类型转化成char类型int a = 9;char b;b = a + '0'; //b = '9'原创 2021-03-13 15:35:51 · 419 阅读 · 0 评论