小编The*_*war的帖子

指针的C/C++约定和`const`

我在维基百科上读过这篇文章(下面也粘贴了):

遵循通常的C约定声明,声明遵循use,并且指针中的*写在指针上,表示解除引用.例如,在声明int*ptr中,解除引用的形式*ptr是一个int,而引用形式ptr是一个指向int的指针.因此,const将名称修改为右侧.相反,C++约定将*与类型相关联,如int*ptr,并将const读取为将类型修改为左侧.因此,int const*ptrToConst可以读作"*ptrToConst是一个int const"(值是常量),或者"ptrToConst是一个int const*"(指针是一个指向常量整数的指针).

我真的无法得到令人满意的解释:

  • 它在哪种意义上修改?

  • 名称类型的意图(见上面的链接)?

  • 为什么它应该在右侧const

c c++

0
推荐指数
1
解决办法
234
查看次数

如何压缩多个更新语句 - SQL

我有一个10列的更新语句,它将每个列中的值替换为该特定列的where条件.

这是代码:

UPDATE Table1
SET Col1 = REPLACE(Col1, '#DIV/0', NULL)
WHERE Col1 = '#DIV/0';


UPDATE Table1
SET Col2 = REPLACE(Col2, '#DIV/0', NULL)
WHERE Col2 = '#DIV/0';


UPDATE Table1
SET Col3 = REPLACE(Col3, '#DIV/0', NULL)
WHERE Col3 = '#DIV/0';
Run Code Online (Sandbox Code Playgroud)

像这样,我有10列,它做的工作,但它看起来不清楚或专业.

我想压缩这段代码,让它看起来像一个专业的代码.

任何建议都非常感谢.

谢谢!

sql t-sql sql-server

0
推荐指数
2
解决办法
90
查看次数

用一些单词替换变长字符串

鉴于以下字符串

Declare @string varchar(max)='abc ___________ deffns ___ cg _ hif _______hh ihs';
Run Code Online (Sandbox Code Playgroud)

这是所需的输出 :(不管长度如何,每次炒作都应该用姓氏替换)

abc lastname deffns lastname cg lastname hif lastname hh ihs
Run Code Online (Sandbox Code Playgroud)

这里的问题是,可以有很多Hypens可变长度(最大长度可以<20)......

我尝试了很多方法并采用以下方法解决..

select 
REPLACE(REPLACE(replace(stringcol,replicate('_',20),'LASTNAME'),
replicate('_',19),'LASTNAME'),
replicate('_',18),'LASTNAME')
 from table
Run Code Online (Sandbox Code Playgroud)

有没有办法有效地完成这一点.任何建议都会受到欢迎

sql t-sql sql-server sql-server-2012

0
推荐指数
1
解决办法
224
查看次数

选择没有重复项的行

我有以下SQL表:

+--------------+
| Account      |
+--------------+
|    11100011  | 
|    11100012  | 
|    11100013  |  
|    11100014  | 
|    11100011  |  
|    11100012  | 
|    11100015  | 
+--------------+
Run Code Online (Sandbox Code Playgroud)

我需要的是使用在此表中没有任何重复项的行进行选择查询(即删除两个重复的行),因此查询结果将如下所示

+--------------+
| Account      |
+--------------+
|    11100013  |  
|    11100014  | 
|    11100015  |
+--------------+
Run Code Online (Sandbox Code Playgroud)

我怎么能在tsql中这样做?

t-sql sql-server sql-server-2008

0
推荐指数
1
解决办法
47
查看次数

将多列选择为多行

UserID  | UserName  | 534 more columns -->
1       | John      | 534 more values  -->
Run Code Online (Sandbox Code Playgroud)

我正在从这些列中的大约 78 列中查找此输出:

Column  | Value 
UserID  | 1
UserName| John
+78 more rows
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

0
推荐指数
1
解决办法
795
查看次数

将'2016-07-2914:50:13.75300'varchar转换为datetime T-SQL

我有varchar' 2016-07-2914:50:13.75300'并希望将其转换为datetime数据类型.

我试过了 select cast('2016-07-2914:50:13.75300' as datetime)

但我得到了

从字符串转换日期和/或时间时转换失败.

t-sql sql-server

-1
推荐指数
1
解决办法
52
查看次数

关于指针大小的困惑

这可能是一个菜鸟问题..但这真让我感到困惑..

下面是一些示例代码

void main() {

    int a = 300;
    char *ptr = &a;
    int *intptr = &a;

    printf("%d\n %d\n", *ptr, *intptr);

}
Run Code Online (Sandbox Code Playgroud)

产量:
44
300

根据我的理解,为什么解除引用*ptr打印44是由于char指针是一个字节的事实,所以它只从int的地址读取8位...

但是这个问题:指针的大小是多少?状态Regardless of what data type they are pointing to, they have fixed size

我错过了一些东西.为什么解引用char指针打印44,如果指针大小相同?

c windows 64-bit pointers

-1
推荐指数
2
解决办法
137
查看次数

以下SQL语句的答案是什么

最近我在做一些在线求职面试问题,发现下面是关于 SQL 的多项选择题。

EMPLOYEES有 5 行。考虑以下 SQL 语句序列。

SQL>CREATE TABLE myTable SELECT AS (SELECT * FROM EMPLOYEES);
SQL>INSERT INTO myTable SELECT * FROM myTable;
SQL>INSERT INTO myTable SELECT * FROM myTable;
SQL>INSERT INTO myTable SELECT * FROM myTable;
SQL>INSERT INTO myTable SELECT * FROM myTable
Run Code Online (Sandbox Code Playgroud)

如果 SQL 语句 SELECT COUNT(*) FROM myTable; 执行完上面列出的所有语句后执行,将打印的是

a) 80 
b) 25 
c) 20 
d) 5
Run Code Online (Sandbox Code Playgroud)

我以为答案是 25,但那个在线门户网站说正确答案是 80。

但如何,不确定!有人可以帮忙吗?

sql database

-2
推荐指数
1
解决办法
6575
查看次数